Pyinstaller打包至win7不兼容问题,亲测已解决 | 您所在的位置:网站首页 › 电脑不能安装py installer › Pyinstaller打包至win7不兼容问题,亲测已解决 |
使用Pyinstaller打包Python项目至win7运行报错问题,已解决
之前有个项目是在win11开发的,但是客户要求将项目部署到win7端,并且是打包成可执行文件.exe。刚开始很顺利,开发-打包-测试,没曾想移植到win7的时候突然间报错。明明在Pyinstaller工具打包过程中,项目中所有的依赖库都打包进去了。就纳闷为什么无法运行。 报错 分析初步判读可能是win7win11的系统版本兼容性不同,所以项目需要的某个系统文件缺失,那就找个地方下载给他补进去。 脚本下载:到百度直接搜索脚本名字api-ms-win-core-path-l1-1-0.dll 随处可见下载链接 解决方法一 把下载好的文件(api-ms-win-core-path-l1-1-0.dll)放到你的系统路径。它的默认路径是在: C:\Windows\System (Windows 95/98/Me), C:\WINNT\System32 (Windows NT/2000), C:\Windows\System32 (Windows XP, Vista, 7, 8, 8.1, 10)。 在 64位 Windows 上,32位 DLL 文件的默认路径是 C:\Windows\SysWOW64\, 64 位 DLL 文件在 C:\Windows\System32\ 。 确保覆盖已有的全部文件(但保留一个原文件备份),然后重启电脑。 解决方法二 如果问题仍未解决,按以下步骤注册 DLL 文件: 32 位 DLL 文件用在 32 位 Windows 上, 64 位 DLL 文件用在 64 位 Windows 上: 打开一个提升权限运行的命令行窗口。 具体操作是点击“开始”,点击“所有程序”,点击“附件”,右键点击“命令提示符”,然后点击“以管理员权限运行”。 在 Windows 8/10 中,前往“开始”界面。键入“cmd”, Windows 会找到“命令行提示符”。右键点击“命令提示符”,选择“以管理员权限运行”。 如果要求输入管理员密码或确认,输入密码,或点击“允许”。 输入 regsvr32 “filename“.dll 然后按下回车。 将 32 位 DLL 文件注册到一台 64 位 Windows 上: 按前述方法打开一个提升权限运行的命令行窗口。 在命令行中键入: cd c:\windows\syswow64\ 然后键入以下命令并回车: regsvr32 c:\windows\syswow64\”filename“.dll 解决方法三 下载一个驱动精灵,点击系统检测,电脑缺少什么文件都可以检测出来。检测好了之后软件会提示需要安装什么,提示:必要系统组件几个等等,然后点击进去安装就是了。安装完成记得重启一下,就修复完成了! 再次测试再次测试之后,上面的保存已经不存在了,但是出现了其他报错。 SystemError: Negative size passed to PyUnicode_New经查询之后发现是编码报错,查询到的几乎所有帖子都是说将utf-8编码改为gbk编码 考虑过后发现工作量非常大,毕竟代码里面涉及到了路径参数。 最后我考虑有没有可能win7的版本太老,而我们目前用的python版本太过于超前,才导致的不兼容问题。 验证猜想我重新创建一个python虚拟环境win7py python==3.5 随后在这个虚拟环境下使用Pyinstaller工具再次打包项目,再迁移到win7系统上面就发现可以运行 |
CopyRight 2018-2019 实验室设备网 版权所有 |